//package com.example.demo.controller;
//
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//import com.example.demo.entity.User;
//import com.example.demo.mapper.UserMapper;
//import com.example.demo.service.UserService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//import java.util.List;
//
////用户解决跨域问题
//@CrossOrigin(origins = "*", methods = {RequestMethod.GET, RequestMethod.POST})
//@RestController
///**
// * @apiNote 用于用户的增删改查
// * @author 钟顺浩
// * @email 2918185121@qq.com
// * @since 1.0.0
// */
//public class UserController extends BaseController {
//
////    // 使用@Autowired注解自动装配UserService类的实例，并将其注入到当前类中
//    @Autowired
//    private UserService userService;
//    @Autowired
//    private UserMapper userMapper;
////
////
////    /**
////     * @apiNote 用于实现用户信息的查询
////     * @author 钟顺浩
////     * @email 2918185121@qq.com
////     * @return List<User>
////     * @since 1.0.0
////     */
//    @GetMapping("/select")
//    public List<User> select(){
//        print("查询的数据：");
//        //这是使用的IsService的方式
////        printList(userService.list());
////        return userService.list();
//        //这是使用的BaseMaper的方式
//        QueryWrapper<User> wrapper = new QueryWrapper<>();
//        // 执行查询
//        return userMapper.selectList(wrapper);
//    }
//
//
//    /**
//     * @apiNote 用于实现用户信息的修改
//     * @author 钟顺浩
//     * @param user 用户对象
//     * @email 2918185121@qq.com
//     * @return List<User>
//     * @since 1.0.0
//     */
//    @PostMapping("/update")
//    public List<User>  update(@RequestBody User user){
//        print("修改前的数据");
//        printList(userService.list());
//        userService.updateById(user);
//        print("修改后的数据");
//        printList(userService.list());
//        return  userService.list();
//    }
//
//
//    /**
//     * @apiNote 用于实现用户信息的增加
//     * @author 钟顺浩
//     * @param user 用户对象
//     * @email 2918185121@qq.com
//     * @since 1.0.0
//     */
//    @PostMapping("/insert")
//    public void insert(@RequestBody User user){
//        print("插入前的数据");
//        printList(userService.list());
//        userService.save(user);
//        print("插入后的数据");
//        printList(userService.list());
//    }
//
//
//    /**
//     * @apiNote 用于实现用户的删除
//     * @author 钟顺浩
//     * @param user 用户对象
//     * @email 2918185121@qq.com
//     * @since 1.0.0
//     */
//    @PostMapping("/delete")
//    public void delete(@RequestBody User user){
//        print("删除前的数据");
//        printList(userService.list());
//        print("删除后的数据");
//        userService.removeById(user.getId());
//        printList(userService.list());
//    }
//}


package com.example.demo.controller;

import org.springframework.web.bind.annotation.*;
import com.example.demo.utils.Result;
import com.example.demo.service.UserService; // 假设这是你的UserService
import com.example.demo.entity.User; // 假设这是你的User实体

import javax.annotation.Resource;
import java.util.List;
@CrossOrigin(origins = "*", methods = {RequestMethod.GET, RequestMethod.POST})
@RestController
public class UserController {

    @Resource
    private UserService userService;

    // 其他代码...

    @GetMapping("/select")
    public Result<List<User>> select() {
        List<User> users = userService.list();
        System.out.println("查询的对象结果"+users);
        return Result.ok(users); // 封装成功的响应
    }

    @PostMapping("/update")
    public Result<List<User>> update(@RequestBody User user) {
        userService.updateById(user);
        List<User> updatedUsers = userService.list(); // 重新获取更新后的用户列表
        return Result.ok(updatedUsers, "更新成功"); // 封装成功的响应，包含自定义消息
    }

    @PostMapping("/insert")
    public Result<Void> insert(@RequestBody User user) {
        userService.save(user);
        return Result.ok(null, "创建成功"); // 封装成功的响应，无数据返回，包含自定义消息
    }

    @PostMapping("/delete")
    public Result<Void> delete(@RequestBody User user) {
        userService.removeById(user.getId());
        return Result.ok(null, "删除成功"); // 封装成功的响应，无数据返回，包含自定义消息
    }
}